
#ifndef __DRV_ADC_H_
#define __DRV_ADC_H_
#include <stdbool.h>
#include <stdint.h>

int drv_adc_routine_for_pwm(const uint8_t *ch_arr, uint8_t ch_num,
                            uint32_t sample_time);
int drv_adc_routine_for_com(const uint8_t *ch_arr, uint8_t ch_num,
                            uint32_t sample_time);

uint16_t drv_adc_get_pwmi_ad(uint8_t ch);
uint16_t drv_adc_get_com_ad(uint8_t ch);
uint16_t drv_adc_get_ai(uint8_t ch);
/**
 * @brief AD采样多路复用芯片控制
 */
extern void adc_multiplexing(void);

/**
 * @brief 获取所有ai通道ad值,16路多路复用电流和电压采样，其中前8路是电流和0~5V采样；后8路是电流和0~10V；
 * [param in]  ch 0~17;     0~7  (0~5V电压采样或者4~20mA电流采样)
 *                          8~15 (0~10V电压采样或者4~20mA电流采样)
 *                          16~17(0~10V电压采样或者电阻采样)
 * [param out] 
 */
extern uint16_t drv_adc_get_ai(uint8_t ch);

#endif
